package com.mls.fivedistrict.server;

import com.github.pagehelper.PageInfo;
import com.mls.fivedistrict.common.PageFilter;
import com.mls.fivedistrict.common.ServiceResponse;
import com.mls.fivedistrict.pojo.User;
import com.mls.fivedistrict.pojo.UserAuth;
import com.mls.fivedistrict.pojo.UserAuthAndUser;
import com.mls.fivedistrict.pojo.UserAuthRecord;

import java.util.List;

/**
 * 用户实名认证
 * Created by chenxiuxiang on 2018/4/1.
 */
public interface UserAuthService {
    int addAuth(UserAuth userAuth, String token);

    /**
     * 根据身份证号查询用户实名信息
     *
     * @param idNo 身份证号
     * @return
     */
    UserAuth getUserAuth(String idNo);

    /**
     * 获取用户实名列表
     *
     * @param pageFilter
     * @return
     */
    PageInfo getUserAuthList(PageFilter pageFilter);

    /**
     * 编辑用户实名信息 如果状态改为不通过 需要将用户实名信息去掉 即将realname置空
     *
     * @param userAuth
     * @param token
     * @return
     */
    int editUserAuth(UserAuth userAuth, String token);

    /**
     * 根据实名信息ID查询详情
     *
     * @param id
     * @return
     */
    UserAuth getUserAuth(Long id);

    /**
     * 查询用户认证信息
     *
     * @param pageFilter
     * @return
     */
    ServiceResponse search(PageFilter pageFilter);

    User getUserByPhone(String phone);

    /**
     * 更改用户的电话号码，身份证号码，手机号
     *
     * @param userAuthAndUser
     * @return
     */
    ServiceResponse editUserAuthAndUser(UserAuthAndUser userAuthAndUser, String token);


    /**
     * 获取激活用户人数
     *
     * @return
     */
    ServiceResponse getUserUnactivateTotal();

    /**
     * 获取未激活人数
     *
     * @return
     */
    ServiceResponse getUserActivateTotal();

    int userAuth(UserAuth userAuth);

    int updateUserAuth(UserAuth userAuth);

    Long autoUserAuth(UserAuth userAuth);
}
